package com.atguigu01.string;

import org.junit.Test;
import org.testng.TestNGAntTask;

import java.io.UnsupportedEncodingException;

/**
 * ClassName: PersonTest
 * Description:
 *
 * @Author liu
 * @Create 2024/11/19 23:12
 * @Version 1.0
 */
public class StringMethodTest1 {
   /*
     * String构造器的使用
     * */
   @Test
    public void test1(){
       String s1 = new String();
       String s2 = new String("");

       String s3 = new String(new char[]{'a','b','c'});
       System.out.println(s3);
    }


/**
 * String与常见的其它结构之间的转换
    *
    * 1. String与基本数据类型、包装类之间的转换（复习）
    *
    * 2. String与char[]之间的转换
    *
    * 3. String与byte[]之间的转换（难度）
 */

@Test
public void test2(){
    int num = 10;

    //基本数据类型 —————>String
    //法一
    String s1 = num + "" ;
  //法二 valueOf()
     String s2 = String.valueOf(num);

     //String ---->基本数据类型   包装类.parseXxx()
    String s3 = "hello";
    int n1 = Integer.parseInt(s3);
    System.out.println(n1);
}

//String与char[]之间的转换
@Test
public void test3(){
  String str = "hello";
  //String --> char[]:调用String的toCharArrary()
    char[] arr = str.toCharArray();
    for (int i = 0; i < arr.length; i++) {
        System.out.print(arr[i]+" ");
    }

    //char[] ---> String :调用String的构造器
    String str1 = new String(arr);
    System.out.println(str1);
}

//String与byte[]之间的转换（难度）
@Test
public void test4() throws UnsupportedEncodingException {
    String str = new String("abc");

    //String ---> byte[] ----> getBytes[]
    byte[] arr =str.getBytes();
    for (int i = 0; i <arr.length; i++) {
        System.out.println(arr[i]);
    }

   //byte[] ---> String:
        String str1 = new String(arr); //使用默认的字符集：utf-8
        System.out.println(str1);

        String str2 = new String(arr,"utf-8");//显式的指明解码的字符集：utf-8
        System.out.println(str2);

}

}